Node.js கட்டமைப்பு என்றால் என்ன?
Node.js ஒரு ஒற்றை-நூல், நிகழ்வு-ஆதார கட்டமைப்பைப் பயன்படுத்துகிறது, இது பல இணைப்புகளை ஒரே நேரத்தில், திறம்பட மற்றும் முக்கிய நூலைத் தடுக்காமல் கையாள வடிவமைக்கப்பட்டுள்ளது.
இது Node.js ஐ அளவிடக்கூடிய பிணைய பயன்பாடுகள், நிகழ்நேர பயன்பாடுகள் மற்றும் APIகளை உருவாக்க சிறந்ததாக்குகிறது.
தடையற்ற I/O
நீண்ட I/O செயல்பாடுகள் முக்கிய நூலைத் தடுக்காது
நிகழ்வு-ஆதார
நிகழ்வுகள் மற்றும் கால்பேக்குகளின் அடிப்படையில் செயல்படுகிறது
ஒற்றை-நூல்
நிகழ்வு வளையத்துடன் ஒற்றை முக்கிய நூல்
அசிங்க்ரோனஸ் இயக்கம்
பணிகள் இணையாக இயங்கும், தொடர்ச்சியாக அல்ல
Node.js கட்டமைப்பு வரைபடம்
Node.js கோரிக்கைகளை எவ்வாறு செயலாக்குகிறது என்பதற்கான எளிய கண்ணோட்டம் இங்கே:
கிளையண்ட் கோரிக்கை கட்டம்
கிளையண்ட்கள் Node.js சேவையகத்திற்கு கோரிக்கைகளை அனுப்புகின்றன
ஒவ்வொரு கோரிக்கையும் நிகழ்வு வரிசையில் சேர்க்கப்படும்
நிகழ்வு வளைய கட்டம்
நிகழ்வு வளையம் தொடர்ந்து நிகழ்வு வரிசையைச் சரிபார்க்கிறது
ஒரு வளையத்தில் கோரிக்கைகளை ஒவ்வொன்றாக எடுக்கும்
கோரிக்கை செயலாக்கம்
எளிய (தடையற்ற) பணிகள் முக்கிய நூலால் உடனடியாக கையாளப்படும்
சிக்கலான/தடுக்கும் பணிகள் நூல் குழுவிற்கு அனுப்பப்படும்
பதில் கட்டம்
தடுக்கும் பணிகள் முடிந்தால், அவற்றின் கால்பேக்குகள் கால்பேக் வரிசையில் வைக்கப்படும்
நிகழ்வு வளையம் கால்பேக்குகளை செயலாக்கி பதில்களை அனுப்பும்
தடையற்ற எடுத்துக்காட்டுகள்
எடுத்துக்காட்டு: தடையற்ற கோப்பு படித்தல்
const fs = require('fs');
console.log('Before file read');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('File contents:', data);
});
console.log('After file read');
"After file read" கோப்பு உள்ளடக்கங்களுக்கு முன் எவ்வாறு அச்சிடப்படுகிறது என்பதைக் கவனிக்கவும், இது Node.js கோப்பு செயல்பாடு முடியும் வரை காத்திருக்காது என்பதைக் காட்டுகிறது.
தடுக்கும் குறியீடு
// தடுக்கும் குறியீடு எடுத்துக்காட்டு
console.log('Start of blocking code');
const data = fs.readFileSync('myfile.txt', 'utf8'); // இங்கே தடுக்கிறது
console.log('Blocking operation completed');
தடையற்ற குறியீடு
// தடையற்ற குறியீடு எடுத்துக்காட்டு
console.log('Start of non-blocking code');
fs.readFile('myfile.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log('Non-blocking operation completed');
});
console.log('This runs before the file is read');
முக்கிய வேறுபாடு:
முதல் எடுத்துக்காட்டு கோப்பு படிக்கப்படும் வரை முழு செயல்முறையையும் தடுக்கிறது, அதே நேரத்தில் இரண்டாவது எடுத்துக்காட்டு கோப்பு படிக்கப்படும் போது மற்ற செயல்பாடுகளைத் தொடர அனுமதிக்கிறது.
எப்போது Node.js ஐப் பயன்படுத்துவது
Node.js குறிப்பாக நன்றாக பொருந்தக்கூடியது:
I/O-பவுண்ட் பயன்பாடுகள்
கோப்பு செயல்பாடுகள், தரவுத்தள கேள்விகள், நெட்வொர்க் கோரிக்கைகள்
நிகழ்நேர பயன்பாடுகள்
அரட்டை பயன்பாடுகள், நேரடி அறிவிப்புகள், ஒத்துழைப்பு கருவிகள்
APIகள்
RESTful சேவைகள், GraphQL APIகள்
மைக்ரோசர்விசுகள்
சிறிய, சுயாதீன சேவைகள்
குறிப்பு:
Node.js CPU-தீவிர பணிகளுக்கு சிறந்த தேர்வாக இருக்காது, ஏனெனில் அவை நிகழ்வு வளையத்தைத் தடுக்கும். இதுபோன்ற சந்தர்ப்பங்களில், கருத்தில் கொள்ளுங்கள்:
- Worker threads பயன்படுத்துதல்
- மிகவும் பொருத்தமான மொழியில் ஒரு மைக்ரோசர்விசை உருவாக்குதல்
- இயற்கையான கூடுதல் கருவிகளைப் பயன்படுத்துதல்
சுருக்கம்
Node.js வேகமான மற்றும் திறமையானது, ஏனெனில் இது ஒரு தடையற்ற நிகழ்வு வளையத்தைப் பயன்படுத்துகிறது மற்றும் கனரக வேலையை கணினிக்கு ஒப்படைக்கிறது.
இது குறைந்தபட்ச வளங்களுடன் ஆயிரக்கணக்கான இணைப்புகளை ஒரே நேரத்தில் கையாள அனுமதிக்கிறது.
பல ஒரேநேர இணைப்புகள்
பல ஒரேநேர இணைப்புகளை திறம்பட கையாளுகிறது
I/O-பவுண்ட் பயன்பாடுகள்
I/O-பவுண்ட் பயன்பாடுகளுக்கு சிறந்தது
JavaScript
கிளையண்ட் மற்றும் சேவையகம் இரண்டிலும் JavaScript பயன்படுத்துகிறது
பெரிய சூழல்
தொகுப்புகளின் பெரிய சூழல் (npm)
பயிற்சி
சரியான சொல்லை தேர்ந்தெடுக்கவும்.
Node.js is built on a ______ architecture.